home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / Exler (RU).ifs < prev    next >
Text File  |  2005-03-28  |  9KB  |  259 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=Karamov Ilshat aka KAA (kaa2@pisem.net)
  8. Title=Exler (RU)
  9. Description=Import from www.exler.ru
  10. Site=www.exler.ru
  11. Language=RU
  12. Version=1.1
  13. Requires=3.5.0
  14. Comments=─ε±≥≤∩ Ω ≡σ÷σφτΦ ∞ └δσΩ±α ▌Ω±δσ≡α, ≡ατ∞σ∙σφφ√⌡ φα ±αΘ≥σ www.exler.ru
  15. License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22. program Exler;
  23.  
  24. const
  25.   BaseAddress = 'http://www.exler.ru/films/';
  26.  
  27. var
  28.   MovieName: string;
  29.  
  30. //==============================================================================
  31.   procedure AnalyzePage();
  32.   var
  33.     Page: TStringList;
  34.     BeginPos, EndPos: Integer;
  35.     AddressText, HTMLText : string;
  36.   begin
  37.   Page := TStringList.Create;
  38.  
  39.   PickTreeClear;
  40.   PickTreeAdd('╨σ÷σφτΦΦ ▌Ω±δσ≡α φα ⌠Φδⁿ∞√ Γ αδ⌠αΓΦ≥φε∞ ∩ε≡ ΣΩσ', '');
  41.   AddAlphabet();
  42.   if PickTreeExec(AddressText) then
  43.   begin
  44.     Page.Text := GetPage(AddressText);
  45.     HTMLText := Page.Text;
  46.   end;
  47.   if Pos('╘Φδⁿ∞√ φα ß≤ΩΓ≤', HTMLText) <> 0 then
  48.   begin
  49.     BeginPos := Pos('╘Φδⁿ∞√ φα ß≤ΩΓ≤', HTMLText);
  50.     HTMLText := Copy(HTMLText, BeginPos+Length('╘Φδⁿ∞√ φα ß≤ΩΓ≤'), Length(HTMLText));
  51.     BeginPos := Pos('<p>', HTMLText);
  52.     HTMLText := Copy(HTMLText, BeginPos+Length('<p>'), Length(HTMLText));
  53.     EndPos :=  Pos('</DIV>', HTMLText);
  54.     HTMLText := Copy(HTMLText, 0, EndPos-1);
  55.     Page.Text:=Trim(HTMLText);
  56.     PickTreeClear;
  57.     PickTreeAdd('╘Φδⁿ∞√ φα Γ√ß≡αφφ≤■ ß≤ΩΓ≤', '');
  58.     AddMoviesTitles(Page);
  59.     if PickTreeExec(AddressText) then
  60.     begin
  61.        // URL
  62.        if CanSetField(fieldURL) then
  63.          SetField(fieldURL, AddressText);
  64.        Page.Text := GetPage(AddressText);
  65.        AnalyzeVideoPage(Page);
  66.     end;
  67.   end;
  68.   Page.Free;
  69. end;
  70.  
  71. //==============================================================================
  72.   procedure AddMoviesTitles(Page: TStringList);
  73.   var
  74.     i: integer;
  75.     Line: string;
  76.     MovieTitle, MovieAddress: string;
  77.     StartPos, EndPos: Integer;
  78.   begin
  79.     for  i:=0  to Page.Count-1 do
  80.     begin
  81.       Line := Page.GetString(i);
  82.       if Line='' then
  83.         Continue;
  84.       StartPos := Pos('<A href="', Line);
  85.       Line := Copy(Line, StartPos+Length('<A href="'), Length(Line));
  86.       EndPos := Pos('">', Line);
  87.       MovieAddress := BaseAddress+Copy(Line, StartPos, EndPos-1);
  88.  
  89.       StartPos := Pos('">', Line);
  90.       EndPos := Pos('</A>', Line);
  91.       MovieTitle := Copy(Line, StartPos+Length('">'), EndPos-1);
  92.       HTMLRemoveTags(MovieTitle);
  93.       PickTreeAdd(MovieTitle, MovieAddress);
  94.     end;
  95.   end;
  96.  
  97. //==============================================================================
  98.   procedure AddAlphabet();
  99.   var
  100.     i: integer;
  101.     Alphabet, Addresses, MovieTitle, MovieAddress: string;
  102.     StartPos, EndPos: Integer;
  103.   begin
  104.     Alphabet :='└ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ▌ ▐ ▀ 1-10 ';
  105.     Addresses:='a b v g d e j z i k l m n o p r s t y f h c ch sh sch ae u ya 1-10 ';
  106.     StartPos:=1;
  107.     for  i:=1  to 29 do
  108.     begin
  109.       EndPos:=Pos(' ', Alphabet);
  110.       MovieTitle := Copy(Alphabet, 1, EndPos);
  111.       Alphabet:=Copy(Alphabet, EndPos+1, Length(Alphabet));
  112.     
  113.       EndPos:=Pos(' ', Addresses);
  114.       MovieAddress := Copy(Addresses, 1, EndPos-1);
  115.       Addresses:=Copy(Addresses, EndPos+1, Length(Addresses));
  116.       
  117.       PickTreeAdd(MovieTitle, BaseAddress+MovieAddress+'.htm');
  118.     end;
  119.   end;
  120.  
  121. //==============================================================================
  122.   procedure AnalyzeVideoPage(Page: TStringList);
  123.   var
  124.     HTMLText, HTMLText1: string;
  125.     BeginPos, EndPos: Integer;
  126.     MovieName, MovieNameTrans, MovieNameOrig, MovieDirector,
  127.                MovieYear, MovieCategory, MovieRating,
  128.                MoviePictureAddress, MovieLength, MovieCountry,
  129.                MovieActors, MovieComments: string;
  130.   begin
  131.  
  132.   HTMLText:=Page.Text;
  133.   HTMLText:=StringReplace(HTMLText, #13#10+'                      ', ' ');
  134.   HTMLText:=StringReplace(HTMLText, #13#10+'        ', ' ');
  135.   HTMLText:=StringReplace(HTMLText, #13#10+'  ', ' ');
  136.   HTMLText:=StringReplace(HTMLText, '"', '"');
  137.   HTMLText:=StringReplace(HTMLText, ' ', ' ');
  138.  
  139.   BeginPos := Pos('<p ALIGN="center"><b>', HTMLText)+Length('<p ALIGN="center"><b>');
  140.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  141.   // ╞αφ≡
  142.   if CanSetField(fieldCategory) then
  143.     begin
  144.       EndPos := Pos('"', HTMLText);
  145.       MovieCategory := Trim(Copy(HTMLText, 0, EndPos-1));
  146.       SetField(fieldCategory, MovieCategory);
  147.     end;
  148.   BeginPos := Pos('"', HTMLText)+Length('"');
  149.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  150.   // ═αΦ∞σφεΓαφΦσ
  151.   if CanSetField(fieldTranslatedTitle) then
  152.     begin
  153.       EndPos := Pos('"', HTMLText);
  154.       MovieNameTrans := Trim(Copy(HTMLText, 0, EndPos-1));
  155.       SetField(fieldTranslatedTitle, MovieNameTrans);
  156.     end;
  157.   BeginPos := Pos('(', HTMLText)+Length('(');
  158.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  159.   // ╬≡ΦπΦφαδⁿφεσ φαΦ∞σφεΓαφΦσ
  160.   if CanSetField(fieldOriginalTitle) then
  161.     begin
  162.       EndPos := Pos(')', HTMLText);
  163.       MovieNameOrig := Trim(Copy(HTMLText, 0, EndPos-1));
  164.       SetField(fieldOriginalTitle, MovieNameOrig);
  165.     end;
  166.   BeginPos := Pos(')', HTMLText)+Length(')');
  167.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  168.   // ╨σµΦ±±σ≡√
  169.   if CanSetField(fieldDirector) then
  170.     begin
  171.       BeginPos := Pos('╨σµΦ±±σ≡', HTMLText)+Length('╨σµΦ±±σ≡');
  172.       HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  173.       BeginPos := Pos('">', HTMLText)+Length('">');
  174.       EndPos := Pos('</a>.', HTMLText);
  175.       MovieDirector := Trim(Copy(HTMLText, BeginPos, EndPos-BeginPos));
  176.       HTMLRemoveTags(MovieDirector);
  177.       MovieDirector:=Trim(StringReplace(MovieDirector, 'û', ''));
  178.       SetField(fieldDirector, MovieDirector);
  179.     end;
  180.   BeginPos := Pos('</a>.', HTMLText)+Length('</a>.');
  181.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  182.   // └Ω≥σ≡√
  183.   if CanSetField(fieldActors) then
  184.     begin
  185.       BeginPos := Pos('┬ ≡εδ x', HTMLText)+Length('┬ ≡εδ ⌡');
  186.       HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  187.       BeginPos := Pos('">', HTMLText)+Length('">');
  188.       EndPos := Pos('</a>.', HTMLText);
  189.       MovieActors := Trim(Copy(HTMLText, BeginPos, EndPos-BeginPos));
  190.       HTMLRemoveTags(MovieActors);
  191.       MovieActors:=Trim(StringReplace(MovieActors, 'û', ''));
  192.       SetField(fieldActors, MovieActors);
  193.     end;
  194.   BeginPos := Pos('</a>.', HTMLText)+Length('</a>.');
  195.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  196.   // ╤≥≡αφα
  197.   if CanSetField(fieldCountry) then
  198.     begin
  199.       EndPos := Pos('.', HTMLText);
  200.       MovieCountry := Trim(Copy(HTMLText, 0, EndPos-1));
  201.       SetField(fieldCountry, MovieCountry);
  202.     end;
  203.   BeginPos := Pos('.', HTMLText)+Length('.');
  204.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  205.   // ├εΣ
  206.   if CanSetField(fieldYear) then
  207.     begin
  208.       EndPos := Pos('.', HTMLText);
  209.       MovieYear := Trim(Copy(HTMLText, 0, EndPos-1));
  210.       SetField(fieldYear, MovieYear);
  211.     end;
  212.   BeginPos := Pos('.', HTMLText)+Length('.');
  213.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  214.   // ╧≡εΣεδµΦ≥σδⁿφε±≥ⁿ
  215.   if CanSetField(fieldLength) then
  216.     begin
  217.       EndPos := Pos('∞Φφ.', HTMLText);
  218.       MovieLength := Trim(Copy(HTMLText, 0, EndPos-1));
  219.       SetField(fieldLength, MovieLength);
  220.     end;
  221.   BeginPos := Pos('.', HTMLText)+Length('.');
  222.   HTMLText := Copy(HTMLText, BeginPos, Length(HTMLText));
  223.   // └Σ≡σ± Ωα≡≥ΦφΩΦ
  224.   BeginPos := Pos('src="', HTMLText)+Length('src="');
  225.   EndPos := Pos('" align', HTMLText);
  226.   MoviePictureAddress := BaseAddress+Trim(Copy(HTMLText, BeginPos, EndPos-BeginPos));
  227.   // ╩ε∞σφ≥α≡ΦΘ-ε≥τ√Γ
  228.   if CanSetField(fieldComments) then
  229.     begin
  230.       BeginPos := Pos('</i>', HTMLText)+Length('</i>');
  231.       EndPos := Pos('<div align="center">', HTMLText);
  232.       MovieComments := Trim(Copy(HTMLText, 0, EndPos-1));
  233.       HTMLRemoveTags(MovieComments);
  234.       MovieComments:=Trim(StringReplace(MovieComments,'"','"'));
  235.       MovieComments:=Trim(StringReplace(MovieComments,'***','"'));
  236.       MovieComments:=Trim(StringReplace(MovieComments,#13#10#13#10,#13#10));
  237.       SetField(fieldComments, '╨σ÷σφτΦ  └δσΩ±α ▌Ω±δσ≡α φα ⌠Φδⁿ∞:'+#13#10+MovieComments);
  238.     end;
  239.  
  240.   // ╩α≡≥ΦφΩα
  241.   if CanSetPicture then
  242.      GetPicture(MoviePictureAddress);
  243.   // ╨στ≤δⁿ≥α≥√;
  244. end;
  245.  
  246. //==============================================================================
  247. //==============================================================================
  248. //==============================================================================
  249. begin
  250.   if CheckVersion(3,5,0) then
  251.   begin
  252.     MovieName := GetField(fieldTranslatedTitle);
  253.     if MovieName = '' then
  254.       MovieName := GetField(fieldOriginalTitle);
  255.     AnalyzePage();
  256.   end else
  257.     ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
  258. end.
  259.